package analyseText;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class TagFenxi {
	//将tag 和 userId加入HashMap中
	public static HashMap<String,String> tagAndUser = new HashMap<String,String>();
	//将tagId 和 tag 加入HashMap
	public static HashMap<String,String> tagIdAndTag = new HashMap<String,String>();
	
	//将tagId 和 userId 加入HashMap
//	public static HashMap<String,String> tagIdAndUser =new HashMap<String,String>();
	
	//将 userId 和 tagId 加入HashMap,一个userId对应多个tagId
	public static HashMap<String,String[]> userIdAndTagId = new HashMap<String,String[]>();
	//每个userId对应的标签最大数目
	public static int MAX=100;
	/**
	 * 对SinaUserTag下的文本进行分析。
	 * @param str (String)要分析的tag数据
	 * @return String
	 * */
	public String tagTextStr(String str) {
		StringBuffer sb1 = new StringBuffer();
		// JSON数据分析
		JSONArray data;
		try {
			data = new JSONArray(str);
			for (int i = 0; i < data.length(); i++) {
				JSONObject info = data.getJSONObject(i);
				String id = info.getString("Id");
				String tag = info.getString("tag");
				sb1.append(id+"\t"+tag);
				sb1.append("\n");
			}
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return sb1.toString();
	}
	
	/**
	 *将tagId 和 tag 加入HashMap
	 *@
	 **/
	public HashMap<String, String> addTagIdAndTag(String str){
		StringBuffer sb1 = new StringBuffer();
		// JSON数据分析
		JSONArray data;
		try {
			data = new JSONArray(str);
			for (int i = 0; i < data.length(); i++) {
				JSONObject info = data.getJSONObject(i);
				String id = info.getString("Id");
				String tag = info.getString("tag");
				tagIdAndTag.put(id, tag);
			}
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return tagIdAndTag;
	}
	
	/**
	 * 将  userId和tagId加入HashMap
	 * */
	public HashMap<String, String[]> addTagIdAndUser(String str){
		//初始化每个userId对应的tagId为个10
		String[] tagIdArray=new String[MAX];
		String preUserId=null;
		StringBuffer sb1 = new StringBuffer();
		// JSON数据分析
		JSONArray data;
		try {
			data = new JSONArray(str);
			for (int i = 0; i < data.length(); i++) {
				JSONObject info = data.getJSONObject(i);
				String tagId = info.getString("SinaUserTagId");
				String userId = info.getString("SinaUserId");
				
				//判断是不是同一个userId对应的tagId值，同时处理第一次时的比较
				if(preUserId==null || preUserId.equals(userId)){
					for(int j=0;j<tagIdArray.length;j++){
						if(tagIdArray[j]==null){
							tagIdArray[j]=tagId;
							break;
						}
					}
				}
				
				//进行到另一个userId时，将数据存入map,再把该userId对应的tagId数组清空，再把读取到的tagId值赋给数组的第一个元素
				if(preUserId!=null && !preUserId.equals(userId)){
					userIdAndTagId.put(preUserId, tagIdArray);
					for(int j=0;j<tagIdArray.length;j++){
						tagIdArray[j]=null;
					}
					tagIdArray[0]=tagId;
				}
				
				preUserId=userId;
				
			}
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return userIdAndTagId;
	}
	
	
}
